#import <Foundation/Foundation.h>

#import "FWApplicationDelegate.h"

@class FWPlugin;
@class SBAwayController;


@interface FWApplication : NSObject
{
    FWPlugin* fwPlugin;
    id<FWApplicationDelegate> applicationDelegate;
    NSString* applicationPath;
    NSString* preferencesPath;
    NSDate* preferencesUpdated;
    NSString* databasePath;
    NSString* pluginPreferencesPath;
    NSBundle* pluginBundle;
    NSMutableDictionary* attributes;
    id info;
    BOOL lockinfo3;
    SBAwayController* awayController;
}


@property (retain) FWPlugin* fwPlugin;
@property (retain) id<FWApplicationDelegate> applicationDelegate;
@property (retain) NSString* applicationPath;
@property (retain) NSString* preferencesPath;
@property (nonatomic, retain) NSDate* preferencesUpdated;
@property (retain) NSString* databasePath;
@property (retain) NSString* pluginPreferencesPath;
@property (nonatomic, retain) NSBundle* pluginBundle;
@property (retain) NSMutableDictionary* attributes;
@property (retain) id info;


- (id)init;
- (void)dealloc;
    
- (NSString*)resourceName;

- (BOOL)shouldUpdateForDate:(NSDate*)date;

- (BOOL)verifyApplication;

- (id)getAttribute:(NSString*)name;
- (void)setAttribute:(NSString*)name value:(NSObject*)value;
- (void)clearAttribute:(NSString*)name;

- (BOOL)isLockInfo3;
- (BOOL)launchURL:(NSURL*)url;
- (BOOL)launchApplicationWithIdentifier:(NSString*)identifier;

- (BOOL)isLockScreen;

@end
